"""
FastAPI 应用主入口
配置应用、中间件和路由
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import settings
from app.core.database import Base, engine
from app.api import auth, users

# 创建数据库表（如果不存在）
Base.metadata.create_all(bind=engine)

# 创建 FastAPI 应用实例
app = FastAPI(
    title=settings.app_name,
    debug=settings.debug,
    version="1.0.0",
    description="基于 FastAPI 的后台开发框架",
    docs_url="/docs",  # Swagger UI 文档地址
    redoc_url="/redoc"  # ReDoc 文档地址
)

# 配置 CORS 中间件，允许跨域请求
# 这对于前后端分离开发非常重要
app.add_middleware(
    CORSMiddleware,
    allow_origins=settings.cors_origins,  # 允许的来源列表
    allow_credentials=True,  # 允许携带凭证（如 Cookie）
    allow_methods=["*"],  # 允许所有 HTTP 方法
    allow_headers=["*"],  # 允许所有请求头
)

# 注册 API 路由
app.include_router(auth.router, prefix="/api")
app.include_router(users.router, prefix="/api")


@app.get("/")
async def root():
    """
    根路径，返回应用基本信息
    
    Returns:
        dict: 欢迎信息和版本号
    """
    return {"message": "欢迎使用 FastAPI 应用", "version": "1.0.0"}


@app.get("/health")
async def health_check():
    """
    健康检查接口，用于监控服务状态
    
    Returns:
        dict: 服务状态信息
    """
    return {"status": "healthy"}


